package com.leihao.product.mapper;

import com.leihao.product.domian.MemberPrice;
import com.leihao.product.domian.ProductFullReduction;
import com.leihao.product.domian.ProductLadder;
import com.leihao.product.domian.Subject;
import com.leihao.product.domian.listRequest.ProductListRequest;
import com.leihao.product.domian.vo.ProductVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ProductMapper {
    List<ProductVo> findList(ProductListRequest productListRequest);

    void update(ProductVo productVo);
    void add(ProductVo productVo);

    void delete(@Param("productId") Integer productId);

    void deleteSubjectmidden(@Param("productId") Integer productId);

    void addSubjectmidden(@Param("productId") Integer productId, @Param("subjectIds") Integer[] subjectIds);

    void deleteServiceGuaranteemidden(@Param("productId") Integer productId);

    void addServiceGuaranteemidden(@Param("productId") Integer productId, @Param("serviceGuaranteeIds") Integer[] serviceGuaranteeIds);

    Integer[] findByServiceGuaranteemidden(@Param("productId") Integer productId);

    Integer[] findBySubjectmidden(@Param("productId") Integer productId);

    void deletePreferencemidden(@Param("productId") Integer productId);

    void addPreferencemidden(@Param("productId") Integer productId, @Param("preferenceIds") Integer[] preferenceIds);

    List<ProductLadder> findByLadderList(@Param("productId") Integer productId);

    List<MemberPrice> findByMemberPriceList(@Param("productId") Integer productId);

    List<ProductFullReduction> findByFullReductionList(@Param("productId") Integer productId);

    Integer[] findByPreferenceMidden(@Param("productId") Integer productId);
}
